import React,{useReducer} from 'react'

export default function App() {
    // 方法中有两个参数，第一个是之前老的值（老状态），第二个是修改后的新值（新状态）
    const reducer=(prevState,action)=>{
        console.log("reducer");
        // 不能修改原对象，创建新对象
        let newState={...prevState}
        switch(action.type){
            case "minus":
                newState.count--
                return newState
            case "add":
                newState.count++
                return newState
            default:
                return prevState
        }
    }
    // 外部状态
    const intialState={
        count:0
    }
    // state:状态值，dispatch方法
    const [state,dispatch]=useReducer(reducer,intialState)
  return (
    <div>
        <button onClick={()=>{
            dispatch({
                type:"minus"
            })
        }}>-</button>
        &nbsp; {state.count} &nbsp;
        <button onClick={()=>{
            dispatch({
                type:"add"
            })
        }}>+</button>
    </div>
  )
}
